package modelo;

import java.io.Serializable;
import javax.persistence.*;

import java.util.List;


/**
 * The persistent class for the usuario database table.
 * 
 */
@Entity
@NamedQueries({
	@NamedQuery(name = "Usuario.seleccionarTodosUsuarios", query = "select p from Usuario p")})
@Table(name="usuario")
public class Usuario implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(unique=true, nullable=false, length=9)
	private String dni;

	@Column(nullable=false, length=30)
	private String apellido1;

	@Column(length=30)
	private String apellido2;

	@Column(nullable=false, length=5)
	private String cp;

	@Column(nullable=false, length=45)
	private String direccion;

	@Column(nullable=false, length=45)
	private String email;

	@Column(nullable=false, length=20)
	private String nombre;

	@Column(nullable=false, length=45)
	private String poblacion;

	@Column(nullable=false, length=30)
	private String provincia;

	@Column(nullable=false, length=9)
	private String telefono1;

	@Column(length=9)
	private String telefono2;

	//bi-directional many-to-one association to Reserva
	@OneToMany(mappedBy="usuario")
	private List<Reserva> reservas;

	//bi-directional one-to-one association to Login
	@OneToOne(cascade={CascadeType.ALL})
	@JoinColumn(name="DNI",nullable=false, insertable=false, updatable=false)
	private Login login;

    public Usuario() {
    }

	public Usuario(String dni, String apellido1, String apellido2, String cp,
			String direccion, String email, String nombre, String poblacion,
			String provincia, String telefono1, String telefono2,
			List<Reserva> reservas, Login login) {
		super();
		this.dni = dni;
		this.apellido1 = apellido1;
		this.apellido2 = apellido2;
		this.cp = cp;
		this.direccion = direccion;
		this.email = email;
		this.nombre = nombre;
		this.poblacion = poblacion;
		this.provincia = provincia;
		this.telefono1 = telefono1;
		this.telefono2 = telefono2;
		this.reservas = reservas;
		this.login = login;
	}

	public Usuario(String dni, String apellido1, String apellido2, String cp,
			String direccion, String email, String nombre, String poblacion,
			String provincia, String telefono1, String telefono2) {
		super();
		this.dni = dni;
		this.apellido1 = apellido1;
		if(apellido2!=null)
			this.apellido2 = apellido2;
		else
			this.apellido2=null;
		this.cp = cp;
		this.direccion = direccion;
		this.email = email;
		this.nombre = nombre;
		this.poblacion = poblacion;
		this.provincia = provincia;
		this.telefono1 = telefono1;
		this.telefono2 = telefono2;
		if(telefono2!=null)
			this.telefono2= telefono2;
		else
			this.telefono2=null;
		this.reservas = null;
		this.login=null;
	}
	public String getDni() {
		return this.dni;
	}

	public void setDni(String dni) {
		this.dni = dni;
	}

	public String getApellido1() {
		return this.apellido1;
	}

	public void setApellido1(String apellido1) {
		this.apellido1 = apellido1;
	}

	public String getApellido2() {
		return this.apellido2;
	}

	public void setApellido2(String apellido2) {
		this.apellido2 = apellido2;
	}

	public String getCp() {
		return this.cp;
	}

	public void setCp(String cp) {
		this.cp = cp;
	}

	public String getDireccion() {
		return this.direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getPoblacion() {
		return this.poblacion;
	}

	public void setPoblacion(String poblacion) {
		this.poblacion = poblacion;
	}

	public String getProvincia() {
		return this.provincia;
	}

	public void setProvincia(String provincia) {
		this.provincia = provincia;
	}

	public String getTelefono1() {
		return this.telefono1;
	}

	public void setTelefono1(String telefono1) {
		this.telefono1 = telefono1;
	}

	public String getTelefono2() {
		return this.telefono2;
	}

	public void setTelefono2(String telefono2) {
		this.telefono2 = telefono2;
	}

	public List<Reserva> getReservas() {
		return this.reservas;
	}

	public void setReservas(List<Reserva> reservas) {
		this.reservas = reservas;
	}
	
	public Login getLogin() {
		return this.login;
	}

	public void setLogin(Login login) {
		this.login = login;
	}
	
}